
import { http } from "@/common/requests.js"
import { compareVersions } from "./format.js"
import { number } from "../uni_modules/uv-ui-tools/libs/function/test.js";
/**** 结束 *****/
const platform = uni.getSystemInfoSync().platform;
export default {
    // 发起ajax请求获取服务端版本号
    getServerNo: async (version, isPrompt = false, callback) => {
        	const {
        		data: res 
        	} = await http.get("/app/version/getLast", {
        		appType: platform == 'android' ? 1 : 2
        	})
        	if (res.code !== 200 || res.data == null) {
        		throw new Error('获取版本信息失败');
        	} 
			// console.log(res)
        	const hasUpdate = compareVersions(version.versionName, res.data.versionCode);
			/* 数据说明
			 * | 参数名称        | 一定返回     | 类型        | 描述
			 * | -------------|--------- | --------- | ------------- |
			 * | versionCode     | y        | int       | 版本号100     |
			 * | versionName     | y        | String    | 版本名称1.0.0 |
			 * | versionInfo     | y        | String    | 版本信息      |
			 * | upgradeType     | y        | String    | 整包还是热更新 1整包|
			 * | updateType      | y        | String    | forcibly = 强制更新, solicit = 弹窗确认更新, silent = 静默更新 |
			 * | downloadUrl     | y        | String    | 版本下载链接（IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接）  |
			 */
        	let updateInfo = { 
				versionCode: res.data.versionName,
				versionName:res.data.versionCode,
        		versionInfo: res.data.versionNote,
				upgradeType:res.data.upgradeType,
				updateType: res.data.forceUpdate?'forcibly':'solicit',
        		downloadUrl: res.data.versionUrl,
				fileSize:0,
        	} 
        	if(hasUpdate==true){
				uni.request({
					url:updateInfo.downloadUrl,
					method:"HEAD",
					success: (res) => {
					        if (res.header['Content-Length']) {
								updateInfo.fileSize = (Number(res.header['Content-Length'])/(1024*1024)).toFixed(2)
								callback && callback(updateInfo);
					        } else {
					            console.log('无法获取文件大小');
					        }
					    },
					    fail: (err) => {
					        console.error('请求失败:', err);
					    }
				})
        	}else{
				if(isPrompt){
					uni.showToast({
					      title: "已是最新版本",
					      icon: "none"
					  });
				}
			}
    }, 
    // 弹窗主颜色（不填默认粉色）
    appUpdateColor: "333333",
    // 弹窗图标（不填显示默认图标，链接配置示例如： '/static/demo/ic_attention.png'）
    appUpdateIcon: ''
}